package main

import (
	"fmt"
	"math"
)

/*
类型转换
类型转换用于将一种数据类型的变量转化为另外一种类型的变量。
Go语言中只有强制类型转换，没有饮食类型转换，该语法只能在两个类型之间支持相互转换的时候使用。
Go语言强制类型转换的基本语法如下：
	type(expression)
type  表示要转换的类型。expression 为表达式，表达式变量，复杂算子和函数返回值等。
*/

/*
什么时候需要强制类型转换
比如计算直角三角形的斜边长时使用math 包的sqrt()函数，改函数接收的是float64类型的参数，
而变量a和b 都是int类型的，这个时候就需要将a和b 强制类型转换为float64类型
*/
func sqrtDemo() {
	var a, b = 3, 4
	var c int
	//math.Sqrt()接受的参数是float64类型，需要强制转换
	c = int(math.Sqrt(float64(a*a + b*b)))
	fmt.Println(c)
}

func main() {
	sqrtDemo()
	var sum int = 17
	var count int = 5
	var mean float32

	mean = float32(sum / count)
	//mean = float32(sum) / float32(count)
	fmt.Printf("mean 的值为: %f\n", mean)

	var a int64 = 3
	var b int32
	b = int32(a)
	fmt.Printf("b 为 : %d", b)

}
